xpi Observer {	
  interface i1 = public interface Sujeito;
  interface i2 = public interface Observador;
  aspect ap = public abstract aspect ObserverProtocol;
  method m1 = protected abstract void addObs(Sujeito, Observador);
  method m2 = protected abstract void removeObs (Sujeito, Observador);
  method m3 = protected abstract void updateObs (Sujeito, Observador);
  pointcut pt = abstract pointcut mudancas(Sujeito);
  rules:
  	i1;
  	i2;	
  	ap;
  	pt in ap;
  	m1, m2, m3 in ap;	
  	for all asp: aspect | asp.name(Observer*) => asp extend ap;
}